The manufacture of products such as semiconductor devices often requires a number of discrete processing steps to produce a packaged semiconductor circuit device from raw semiconductor material. Specifically, the raw semiconductor material is usually a slice of single crystal silicon referred to as a wafer. Circuits of a particular type are fabricated together in batches of wafers called "lots" or "runs." The fabrication process creates regular arrays of a circuit on the wafers of a lot. During processing, the wafers in the lot may go through individual processing steps either one at a time or as a batch. At the completion of wafer processing, the wafers are tested to determine circuit functionality. Later, the wafers are sliced to separate the semiconductor devices which are then packaged individually.
In a typical semiconductor process, each of the wafer processing steps is performed by a processing station. A "recipe" is used to control a processing station during a particular processing step. In the context of semiconductor processing, a recipe is a set of process instructions that relates to both a particular process station and a particular processing step. For example, a recipe may specify various processing parameters such as temperature, pressure and gas flow, which are used during the set up and operation of a processing station. Since some semiconductor processes require many steps and run several processing stations in parallel for each processing step, and recipes are both machine-specific and process-step-specific, many recipes may be required to manufacture a semiconductor product. Consequently, recipes are typically stored on a database and then retrieved when a particular processing step is to be performed on a particular processing station.
To manage the processing of semiconductor devices, some semiconductor processes also use "specifications." A "specification" is a text file that specifies information about a particular process step. Specifications are usually "higher level" documents than recipes and often specify one or more recipes to be used during a particular processing step because of the importance of ensuring that a specification contains the correct information, specifications must satisfy several checks before they can be used.
A specification is first generated and examined for correct syntax and content. At this point the specification is "frozen" so that its contents cannot be changed. The frozen specification is then reviewed by process personnel and is considered to be "unapproved." Once the processing personnel approve the specifications, its status is changed to "approved."
Existing, previously approved specifications may also be updated or edited. Once an existing, approved specifications is changed, its syntax and content are again validated and the specification is frozen. Then the specification again enters sign-off and its status is changed to unapproved until the specification is approved by process personnel.
Consider the processing arrangement 100 illustrated in FIG. 1. Processing arrangement 100 includes a client 102, a recipe management system (RMS) 104 and a processing station 106. Client 102, RMS 104 and processing station 106 are communicatively coupled via communication bus 108.
RMS 104 includes a database 112 and a database server 114. Database 112 includes database system files and data files stored on a non-volatile storage medium, such as one or more disks. The data files include one or more recipes used with processing station 106 to perform processing steps on a wafer. Database server 114 writes data to and reads data from database 112 in a response to commands from client 102. For example, database server 114 provides recipes to processing station 106 in response to commands from client 102. Also, database server 114 updates recipes stored on database 112 in response to commands from client 102. Database 112 also stores context information that is used during wafer processing. Context information uniquely identifies each process step in the process, such as lot number, product, route and other similar information.
Processing station 106 includes an equipment interface 116 for providing communication between processing station 106 and communication bus 108. Processing station 106 also includes equipment 118 for performing a processing step on a wafer.
To perform a process step, processing station 106 requests a recipe from RMS 104. After receiving the recipe, processing station 106 performs the processing instructions specified in the recipe to complete the particular processing step.
Processing arrangement 100 includes a process manager 120 for tracking the overall processing of wafers. Process manager 120 is communicatively coupled to communication bus 108 and includes a database 122 and a database server 124. Database 122 includes database system files and process data files stored on a non-volatile storage medium, such as one or more disks. One type of file is the previously-described specification.
Database server 124 accesses data stored on database 122 in response to commands from client 102. Typically a process control operator examines the contents of a specification in use on process manager 120 via client 102 or directly on process manager 120 to determine which recipe is to be used to perform a processing step on a specific processing station. Then the operator separately communicates with RMS 104 to have the recipes that are referenced in the specification downloaded from RMS 104 to equipment interface 116 of processing station 106.
Although process manager 120 provides high level tracking of the work in progress on processing arrangement 100, process manager 120 in processing arrangement 100, process manager 120 also has its disadvantages. Specifically, the transactions between client 102 and the process manager 120 often are not coordinated with respect to recipes stored on RMS 104, which can cause inconsistencies in processing performed by processing arrangement 100. This is because RMS 104 and processing station 106 cannot process specifications. For example, database 122 may contain two specifications that each reference a particular recipe stored on database 112. A value in the recipe stored on database 112 may be updated to accommodate one of the specifications stored on database 122. However, the other specification may expect the recipe to contain the old value. Consequently, one specification on database 122 expects the recipe on database 112 to contain the updated value, while the second specification expects the recipe to contain the original value. As a result, client 102 may choose a particular specification from database 122 to be processed and obtain an unexpected result because of the change made to the recipe. A similar problem is that for some recipe management systems the context information does not have version capability. Consequently, only a single version of a particular context may be maintained on database 112.
One approach for resolving this problem is to establish a sign-off procedure wherein a version of a specification is manually certified by certain personnel who then manually verify that recipes on database 112 referenced by the specification on database 122 contain the correct information. However, because of the uncoordinated nature of transactions between process manager 120 and RMS 104, this approach often results in inconsistencies between what is expected to be contained in recipes stored on database 112 and what is actually contained in recipes stored on database 112.
Another solution is to have the specification sent directly from process manager 120 to process station 106 to be interpreted by equipment interface 116. Equipment interface 116 would then scan the specification for the recipe information to be used by equipment 118. However, not all recipe information has consistent syntax across different equipment, making this solution impractical.
In view of the need to manage manufacturing processes at a high level and the limitations in existing approaches, an alternative approach for managing specifications, recipes and contexts in semiconductor processes is highly desirable.